希望最後結束至少可以把兩門課程講完。
這大章節都是很多Google Cloud功能的實作練習,老實說這些實作可能是這堂課非常重要的內容一環,不過,寫起來真的很麻煩,我還是比較喜歡寫些理論或觀念的內容。
首先,是Google Datalab,其實這就是JupyterLab,然後整合了一些功能,整體頁面上和原本的Jupyter差不多。
從上圖中,可以看出一個簡單的運作循環:
(1)撰寫python程式碼 -> (2)運作程式碼 -> (3)檢視Output > (4) 撰寫敘述 -> (5)分享與協作
(1): 在notebook中主要以python程式碼為主,從Kernel中可以去調整成其它語法(R, Python2, Python3),在撰寫區也能使用script執行一些其它功能(e.g. git),但建議還是開Terminal去跑會比較好。
(2): 在notebook的特點就是能夠將程式碼分別撰寫在不同區塊中,並且分開執行,好處是能夠即時,且不用重跑全部的程式,壞處則是儘管視覺上程式碼被區塊分隔,但彼此間的變數、函數等參數都會共用,有時候一不注意在其它區塊修改到,會導致後面的程式無法執行,要Debug卻不容易,只好將記憶體清空,從頭重新跑一次。
(3): 區塊中執行的結果若有輸出,會直接顯示在區塊下方,無論是文字、圖片都能夠馬上與程式碼做連結,非常直觀易懂。
(4): 區塊內除了撰寫程式碼,也能切換成文字模式做編輯,比起普通的註解,這裡語法是用Markdown可以做很多變化,非常適合製作教材的使用。
(5): 最後,能夠利用Google整合的功能,將檔案上傳至github進行協作分享。
傳統上使用jupyter時,我們會在本機端開啟server,再利用瀏覽器開啟進行編寫。然而,當電腦關機後Server也會隨之停止運行,若是要多人同時協作編寫時,用單機作為Server也不方便。所以若是將Server放在雲端的虛擬機或container 中就能夠應對前面的問題了,這也是Google Datalab方便之處。同時,專案告一段落後,可以將結果上傳到github中,然後再清除虛擬機或container,等到下次要使用時,再根據使用的需求(硬體、軟體套件版本等)創建新的就可以了!